 /* Copyright 2018 JDCLOUD.COM

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http:#www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.





Contact: 

NOTE: This class is auto generated by the jdcloud code generator program.
*/


#import <Foundation/Foundation.h>
#import <JDCloudOCSDKRds/RdsModel.h>

@implementation QueryPerformanceResult
-(id) initWithSql:(NSString*) sql
      lastExecutionTime:(NSString*)lastExecutionTime
      elapsedTime:(NSNumber*)elapsedTime
      executionCount:(NSNumber*)executionCount
      workerTime:(NSNumber*)workerTime
      logicalReads:(NSNumber*)logicalReads
      logicalWrites:(NSNumber*)logicalWrites
      physicalReads:(NSNumber*)physicalReads
      lastRows:(NSNumber*)lastRows { 
     self.sql = sql;               
     self.lastExecutionTime = lastExecutionTime;               
     self.elapsedTime = elapsedTime;               
     self.executionCount = executionCount;               
     self.workerTime = workerTime;               
     self.logicalReads = logicalReads;               
     self.logicalWrites = logicalWrites;               
     self.physicalReads = physicalReads;               
     self.lastRows = lastRows;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self sql])
    {
        [result setValue:[self sql] forKey:@"sql"];
    }
    if([self lastExecutionTime])
    {
        [result setValue:[self lastExecutionTime] forKey:@"lastExecutionTime"];
    }
    if([self elapsedTime])
    {
        [result setValue:[self elapsedTime] forKey:@"elapsedTime"];
    }
    if([self executionCount])
    {
        [result setValue:[self executionCount] forKey:@"executionCount"];
    }
    if([self workerTime])
    {
        [result setValue:[self workerTime] forKey:@"workerTime"];
    }
    if([self logicalReads])
    {
        [result setValue:[self logicalReads] forKey:@"logicalReads"];
    }
    if([self logicalWrites])
    {
        [result setValue:[self logicalWrites] forKey:@"logicalWrites"];
    }
    if([self physicalReads])
    {
        [result setValue:[self physicalReads] forKey:@"physicalReads"];
    }
    if([self lastRows])
    {
        [result setValue:[self lastRows] forKey:@"lastRows"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.sql = [dictionary objectForKey:@"sql"];
    self.lastExecutionTime = [dictionary objectForKey:@"lastExecutionTime"];
    self.elapsedTime = [dictionary objectForKey:@"elapsedTime"];
    self.executionCount = [dictionary objectForKey:@"executionCount"];
    self.workerTime = [dictionary objectForKey:@"workerTime"];
    self.logicalReads = [dictionary objectForKey:@"logicalReads"];
    self.logicalWrites = [dictionary objectForKey:@"logicalWrites"];
    self.physicalReads = [dictionary objectForKey:@"physicalReads"];
    self.lastRows = [dictionary objectForKey:@"lastRows"];
    return self;
}
 @end
@implementation Backup
-(id) initWithBackupId:(NSString*) backupId
      backupName:(NSString*)backupName
      instanceId:(NSString*)instanceId
      backupStatus:(NSString*)backupStatus
      backupStartTime:(NSString*)backupStartTime
      backupEndTime:(NSString*)backupEndTime
      backupType:(NSString*)backupType
      backupMode:(NSString*)backupMode
      backupUnit:(NSString*)backupUnit
      backupFiles:(NSArray<NSString*>*)backupFiles
      backupSizeByte:(NSNumber*)backupSizeByte { 
     self.backupId = backupId;               
     self.backupName = backupName;               
     self.instanceId = instanceId;               
     self.backupStatus = backupStatus;               
     self.backupStartTime = backupStartTime;               
     self.backupEndTime = backupEndTime;               
     self.backupType = backupType;               
     self.backupMode = backupMode;               
     self.backupUnit = backupUnit;               
     self.backupFiles = backupFiles;               
     self.backupSizeByte = backupSizeByte;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self backupId])
    {
        [result setValue:[self backupId] forKey:@"backupId"];
    }
    if([self backupName])
    {
        [result setValue:[self backupName] forKey:@"backupName"];
    }
    if([self instanceId])
    {
        [result setValue:[self instanceId] forKey:@"instanceId"];
    }
    if([self backupStatus])
    {
        [result setValue:[self backupStatus] forKey:@"backupStatus"];
    }
    if([self backupStartTime])
    {
        [result setValue:[self backupStartTime] forKey:@"backupStartTime"];
    }
    if([self backupEndTime])
    {
        [result setValue:[self backupEndTime] forKey:@"backupEndTime"];
    }
    if([self backupType])
    {
        [result setValue:[self backupType] forKey:@"backupType"];
    }
    if([self backupMode])
    {
        [result setValue:[self backupMode] forKey:@"backupMode"];
    }
    if([self backupUnit])
    {
        [result setValue:[self backupUnit] forKey:@"backupUnit"];
    }
    if([self backupFiles])
    {
        [result setValue:[self backupFiles] forKey:@"backupFiles"];
    }
    if([self backupSizeByte])
    {
        [result setValue:[self backupSizeByte] forKey:@"backupSizeByte"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.backupId = [dictionary objectForKey:@"backupId"];
    self.backupName = [dictionary objectForKey:@"backupName"];
    self.instanceId = [dictionary objectForKey:@"instanceId"];
    self.backupStatus = [dictionary objectForKey:@"backupStatus"];
    self.backupStartTime = [dictionary objectForKey:@"backupStartTime"];
    self.backupEndTime = [dictionary objectForKey:@"backupEndTime"];
    self.backupType = [dictionary objectForKey:@"backupType"];
    self.backupMode = [dictionary objectForKey:@"backupMode"];
    self.backupUnit = [dictionary objectForKey:@"backupUnit"];
    self.backupFiles = [dictionary objectForKey:@"backupFiles"];
    self.backupSizeByte = [dictionary objectForKey:@"backupSizeByte"];
    return self;
}
 @end
@implementation ErrorLog
-(id) initWithName:(NSString*) name
      sizeByte:(NSNumber*)sizeByte
      lastUpdateTime:(NSString*)lastUpdateTime
      uploadTime:(NSString*)uploadTime
      publicURL:(NSString*)publicURL
      internalURL:(NSString*)internalURL { 
     self.name = name;               
     self.sizeByte = sizeByte;               
     self.lastUpdateTime = lastUpdateTime;               
     self.uploadTime = uploadTime;               
     self.publicURL = publicURL;               
     self.internalURL = internalURL;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self name])
    {
        [result setValue:[self name] forKey:@"name"];
    }
    if([self sizeByte])
    {
        [result setValue:[self sizeByte] forKey:@"sizeByte"];
    }
    if([self lastUpdateTime])
    {
        [result setValue:[self lastUpdateTime] forKey:@"lastUpdateTime"];
    }
    if([self uploadTime])
    {
        [result setValue:[self uploadTime] forKey:@"uploadTime"];
    }
    if([self publicURL])
    {
        [result setValue:[self publicURL] forKey:@"publicURL"];
    }
    if([self internalURL])
    {
        [result setValue:[self internalURL] forKey:@"internalURL"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.name = [dictionary objectForKey:@"name"];
    self.sizeByte = [dictionary objectForKey:@"sizeByte"];
    self.lastUpdateTime = [dictionary objectForKey:@"lastUpdateTime"];
    self.uploadTime = [dictionary objectForKey:@"uploadTime"];
    self.publicURL = [dictionary objectForKey:@"publicURL"];
    self.internalURL = [dictionary objectForKey:@"internalURL"];
    return self;
}
 @end
@implementation DBInstanceInternal
-(id) initWithInstanceId:(NSString*) instanceId
      instanceName:(NSString*)instanceName
      engine:(NSString*)engine
      instanceType:(NSString*)instanceType
      instanceStatus:(NSString*)instanceStatus { 
     self.instanceId = instanceId;               
     self.instanceName = instanceName;               
     self.engine = engine;               
     self.instanceType = instanceType;               
     self.instanceStatus = instanceStatus;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self instanceId])
    {
        [result setValue:[self instanceId] forKey:@"instanceId"];
    }
    if([self instanceName])
    {
        [result setValue:[self instanceName] forKey:@"instanceName"];
    }
    if([self engine])
    {
        [result setValue:[self engine] forKey:@"engine"];
    }
    if([self instanceType])
    {
        [result setValue:[self instanceType] forKey:@"instanceType"];
    }
    if([self instanceStatus])
    {
        [result setValue:[self instanceStatus] forKey:@"instanceStatus"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.instanceId = [dictionary objectForKey:@"instanceId"];
    self.instanceName = [dictionary objectForKey:@"instanceName"];
    self.engine = [dictionary objectForKey:@"engine"];
    self.instanceType = [dictionary objectForKey:@"instanceType"];
    self.instanceStatus = [dictionary objectForKey:@"instanceStatus"];
    return self;
}
 @end
@implementation ResourceInfo
-(id) initWithResourceId:(NSString*) resourceId
      resourceName:(NSString*)resourceName { 
     self.resourceId = resourceId;               
     self.resourceName = resourceName;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self resourceId])
    {
        [result setValue:[self resourceId] forKey:@"resourceId"];
    }
    if([self resourceName])
    {
        [result setValue:[self resourceName] forKey:@"resourceName"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.resourceId = [dictionary objectForKey:@"resourceId"];
    self.resourceName = [dictionary objectForKey:@"resourceName"];
    return self;
}
 @end
@implementation ParameterModifyRecords
-(id) initWithName:(NSString*) name
      preModify:(NSString*)preModify
      postModify:(NSString*)postModify
      updateTime:(NSString*)updateTime { 
     self.name = name;               
     self.preModify = preModify;               
     self.postModify = postModify;               
     self.updateTime = updateTime;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self name])
    {
        [result setValue:[self name] forKey:@"name"];
    }
    if([self preModify])
    {
        [result setValue:[self preModify] forKey:@"preModify"];
    }
    if([self postModify])
    {
        [result setValue:[self postModify] forKey:@"postModify"];
    }
    if([self updateTime])
    {
        [result setValue:[self updateTime] forKey:@"updateTime"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.name = [dictionary objectForKey:@"name"];
    self.preModify = [dictionary objectForKey:@"preModify"];
    self.postModify = [dictionary objectForKey:@"postModify"];
    self.updateTime = [dictionary objectForKey:@"updateTime"];
    return self;
}
 @end
@implementation Binlog
-(id) initWithBinlogBackupId:(NSString*) binlogBackupId
      binlogName:(NSString*)binlogName
      binlogSizeKB:(NSNumber*)binlogSizeKB
      binlogStartTime:(NSString*)binlogStartTime
      binlogEndTime:(NSString*)binlogEndTime { 
     self.binlogBackupId = binlogBackupId;               
     self.binlogName = binlogName;               
     self.binlogSizeKB = binlogSizeKB;               
     self.binlogStartTime = binlogStartTime;               
     self.binlogEndTime = binlogEndTime;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self binlogBackupId])
    {
        [result setValue:[self binlogBackupId] forKey:@"binlogBackupId"];
    }
    if([self binlogName])
    {
        [result setValue:[self binlogName] forKey:@"binlogName"];
    }
    if([self binlogSizeKB])
    {
        [result setValue:[self binlogSizeKB] forKey:@"binlogSizeKB"];
    }
    if([self binlogStartTime])
    {
        [result setValue:[self binlogStartTime] forKey:@"binlogStartTime"];
    }
    if([self binlogEndTime])
    {
        [result setValue:[self binlogEndTime] forKey:@"binlogEndTime"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.binlogBackupId = [dictionary objectForKey:@"binlogBackupId"];
    self.binlogName = [dictionary objectForKey:@"binlogName"];
    self.binlogSizeKB = [dictionary objectForKey:@"binlogSizeKB"];
    self.binlogStartTime = [dictionary objectForKey:@"binlogStartTime"];
    self.binlogEndTime = [dictionary objectForKey:@"binlogEndTime"];
    return self;
}
 @end
@implementation InterceptResult
-(id) initWithStartTime:(NSString*) startTime
      ip:(NSString*)ip
      accountName:(NSString*)accountName
      threadId:(NSString*)threadId
      dbName:(NSString*)dbName
      sql:(NSString*)sql { 
     self.startTime = startTime;               
     self.ip = ip;               
     self.accountName = accountName;               
     self.threadId = threadId;               
     self.dbName = dbName;               
     self.sql = sql;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self startTime])
    {
        [result setValue:[self startTime] forKey:@"startTime"];
    }
    if([self ip])
    {
        [result setValue:[self ip] forKey:@"ip"];
    }
    if([self accountName])
    {
        [result setValue:[self accountName] forKey:@"accountName"];
    }
    if([self threadId])
    {
        [result setValue:[self threadId] forKey:@"threadId"];
    }
    if([self dbName])
    {
        [result setValue:[self dbName] forKey:@"dbName"];
    }
    if([self sql])
    {
        [result setValue:[self sql] forKey:@"sql"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.startTime = [dictionary objectForKey:@"startTime"];
    self.ip = [dictionary objectForKey:@"ip"];
    self.accountName = [dictionary objectForKey:@"accountName"];
    self.threadId = [dictionary objectForKey:@"threadId"];
    self.dbName = [dictionary objectForKey:@"dbName"];
    self.sql = [dictionary objectForKey:@"sql"];
    return self;
}
 @end
@implementation ImportFile
-(id) initWithName:(NSString*) name
      sharedFileGid:(NSString*)sharedFileGid
      sizeByte:(NSNumber*)sizeByte
      uploadTime:(NSString*)uploadTime
      isLocal:(NSString*)isLocal
      status:(NSString*)status
      importTime:(NSString*)importTime { 
     self.name = name;               
     self.sharedFileGid = sharedFileGid;               
     self.sizeByte = sizeByte;               
     self.uploadTime = uploadTime;               
     self.isLocal = isLocal;               
     self.status = status;               
     self.importTime = importTime;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self name])
    {
        [result setValue:[self name] forKey:@"name"];
    }
    if([self sharedFileGid])
    {
        [result setValue:[self sharedFileGid] forKey:@"sharedFileGid"];
    }
    if([self sizeByte])
    {
        [result setValue:[self sizeByte] forKey:@"sizeByte"];
    }
    if([self uploadTime])
    {
        [result setValue:[self uploadTime] forKey:@"uploadTime"];
    }
    if([self isLocal])
    {
        [result setValue:[self isLocal] forKey:@"isLocal"];
    }
    if([self status])
    {
        [result setValue:[self status] forKey:@"status"];
    }
    if([self importTime])
    {
        [result setValue:[self importTime] forKey:@"importTime"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.name = [dictionary objectForKey:@"name"];
    self.sharedFileGid = [dictionary objectForKey:@"sharedFileGid"];
    self.sizeByte = [dictionary objectForKey:@"sizeByte"];
    self.uploadTime = [dictionary objectForKey:@"uploadTime"];
    self.isLocal = [dictionary objectForKey:@"isLocal"];
    self.status = [dictionary objectForKey:@"status"];
    self.importTime = [dictionary objectForKey:@"importTime"];
    return self;
}
 @end
@implementation FileDownloadURL
-(id) initWithPublicURL:(NSString*) publicURL
      internalURL:(NSString*)internalURL { 
     self.publicURL = publicURL;               
     self.internalURL = internalURL;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self publicURL])
    {
        [result setValue:[self publicURL] forKey:@"publicURL"];
    }
    if([self internalURL])
    {
        [result setValue:[self internalURL] forKey:@"internalURL"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.publicURL = [dictionary objectForKey:@"publicURL"];
    self.internalURL = [dictionary objectForKey:@"internalURL"];
    return self;
}
 @end
@implementation ParameterGroupParameter
-(id) initWithName:(NSString*) name
      descriptionValue:(NSString*)descriptionValue
      configureValue:(NSString*)configureValue
      defaultValue:(NSString*)defaultValue
      range:(NSString*)range
      type:(NSString*)type
      needRestart:(NSString*)needRestart { 
     self.name = name;               
     self.descriptionValue = descriptionValue;               
     self.configureValue = configureValue;               
     self.defaultValue = defaultValue;               
     self.range = range;               
     self.type = type;               
     self.needRestart = needRestart;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self name])
    {
        [result setValue:[self name] forKey:@"name"];
    }
    if([self descriptionValue])
    {
        [result setValue:[self descriptionValue] forKey:@"description"];
    }
    if([self configureValue])
    {
        [result setValue:[self configureValue] forKey:@"configureValue"];
    }
    if([self defaultValue])
    {
        [result setValue:[self defaultValue] forKey:@"defaultValue"];
    }
    if([self range])
    {
        [result setValue:[self range] forKey:@"range"];
    }
    if([self type])
    {
        [result setValue:[self type] forKey:@"type"];
    }
    if([self needRestart])
    {
        [result setValue:[self needRestart] forKey:@"needRestart"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.name = [dictionary objectForKey:@"name"];
    self.descriptionValue = [dictionary objectForKey:@"description"];
    self.configureValue = [dictionary objectForKey:@"configureValue"];
    self.defaultValue = [dictionary objectForKey:@"defaultValue"];
    self.range = [dictionary objectForKey:@"range"];
    self.type = [dictionary objectForKey:@"type"];
    self.needRestart = [dictionary objectForKey:@"needRestart"];
    return self;
}
 @end
@implementation MissingIndexResult
-(id) initWithDb:(NSString*) db
      table:(NSString*)table
      equalityColumns:(NSString*)equalityColumns
      inequalityColumns:(NSString*)inequalityColumns
      includedColumns:(NSString*)includedColumns
      avgUserImpact:(NSNumber*)avgUserImpact
      userScans:(NSNumber*)userScans
      userSeeks:(NSNumber*)userSeeks { 
     self.db = db;               
     self.table = table;               
     self.equalityColumns = equalityColumns;               
     self.inequalityColumns = inequalityColumns;               
     self.includedColumns = includedColumns;               
     self.avgUserImpact = avgUserImpact;               
     self.userScans = userScans;               
     self.userSeeks = userSeeks;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self db])
    {
        [result setValue:[self db] forKey:@"db"];
    }
    if([self table])
    {
        [result setValue:[self table] forKey:@"table"];
    }
    if([self equalityColumns])
    {
        [result setValue:[self equalityColumns] forKey:@"equalityColumns"];
    }
    if([self inequalityColumns])
    {
        [result setValue:[self inequalityColumns] forKey:@"inequalityColumns"];
    }
    if([self includedColumns])
    {
        [result setValue:[self includedColumns] forKey:@"includedColumns"];
    }
    if([self avgUserImpact])
    {
        [result setValue:[self avgUserImpact] forKey:@"avgUserImpact"];
    }
    if([self userScans])
    {
        [result setValue:[self userScans] forKey:@"userScans"];
    }
    if([self userSeeks])
    {
        [result setValue:[self userSeeks] forKey:@"userSeeks"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.db = [dictionary objectForKey:@"db"];
    self.table = [dictionary objectForKey:@"table"];
    self.equalityColumns = [dictionary objectForKey:@"equalityColumns"];
    self.inequalityColumns = [dictionary objectForKey:@"inequalityColumns"];
    self.includedColumns = [dictionary objectForKey:@"includedColumns"];
    self.avgUserImpact = [dictionary objectForKey:@"avgUserImpact"];
    self.userScans = [dictionary objectForKey:@"userScans"];
    self.userSeeks = [dictionary objectForKey:@"userSeeks"];
    return self;
}
 @end
@implementation File
-(id) initWithName:(NSString*) name
      sizeByte:(NSNumber*)sizeByte { 
     self.name = name;               
     self.sizeByte = sizeByte;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self name])
    {
        [result setValue:[self name] forKey:@"name"];
    }
    if([self sizeByte])
    {
        [result setValue:[self sizeByte] forKey:@"sizeByte"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.name = [dictionary objectForKey:@"name"];
    self.sizeByte = [dictionary objectForKey:@"sizeByte"];
    return self;
}
 @end
@implementation WhiteList
-(id) initWithName:(NSString*) name
      ips:(NSString*)ips { 
     self.name = name;               
     self.ips = ips;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self name])
    {
        [result setValue:[self name] forKey:@"name"];
    }
    if([self ips])
    {
        [result setValue:[self ips] forKey:@"ips"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.name = [dictionary objectForKey:@"name"];
    self.ips = [dictionary objectForKey:@"ips"];
    return self;
}
 @end
@implementation DBInstanceNode
-(id) initWithId:(NSString*) idValue
      name:(NSString*)name
      status:(NSString*)status { 
     self.idValue = idValue;               
     self.name = name;               
     self.status = status;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self idValue])
    {
        [result setValue:[self idValue] forKey:@"id"];
    }
    if([self name])
    {
        [result setValue:[self name] forKey:@"name"];
    }
    if([self status])
    {
        [result setValue:[self status] forKey:@"status"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.idValue = [dictionary objectForKey:@"id"];
    self.name = [dictionary objectForKey:@"name"];
    self.status = [dictionary objectForKey:@"status"];
    return self;
}
 @end
@implementation Tag
-(id) initWithKey:(NSString*) key
      value:(NSString*)value { 
     self.key = key;               
     self.value = value;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self key])
    {
        [result setValue:[self key] forKey:@"key"];
    }
    if([self value])
    {
        [result setValue:[self value] forKey:@"value"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.key = [dictionary objectForKey:@"key"];
    self.value = [dictionary objectForKey:@"value"];
    return self;
}
 @end
@implementation Log
-(id) initWithId:(NSString*) idValue
      name:(NSString*)name
      sizeByte:(NSNumber*)sizeByte
      lastModified:(NSString*)lastModified
      publicURL:(NSString*)publicURL
      internalURL:(NSString*)internalURL { 
     self.idValue = idValue;               
     self.name = name;               
     self.sizeByte = sizeByte;               
     self.lastModified = lastModified;               
     self.publicURL = publicURL;               
     self.internalURL = internalURL;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self idValue])
    {
        [result setValue:[self idValue] forKey:@"id"];
    }
    if([self name])
    {
        [result setValue:[self name] forKey:@"name"];
    }
    if([self sizeByte])
    {
        [result setValue:[self sizeByte] forKey:@"sizeByte"];
    }
    if([self lastModified])
    {
        [result setValue:[self lastModified] forKey:@"lastModified"];
    }
    if([self publicURL])
    {
        [result setValue:[self publicURL] forKey:@"publicURL"];
    }
    if([self internalURL])
    {
        [result setValue:[self internalURL] forKey:@"internalURL"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.idValue = [dictionary objectForKey:@"id"];
    self.name = [dictionary objectForKey:@"name"];
    self.sizeByte = [dictionary objectForKey:@"sizeByte"];
    self.lastModified = [dictionary objectForKey:@"lastModified"];
    self.publicURL = [dictionary objectForKey:@"publicURL"];
    self.internalURL = [dictionary objectForKey:@"internalURL"];
    return self;
}
 @end
@implementation DigestData
-(id) initWithPct95:(NSNumber*) pct95
      max:(NSNumber*)max
      avg:(NSNumber*)avg
      min:(NSNumber*)min
      total:(NSNumber*)total { 
     self.pct95 = pct95;               
     self.max = max;               
     self.avg = avg;               
     self.min = min;               
     self.total = total;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self pct95])
    {
        [result setValue:[self pct95] forKey:@"pct95"];
    }
    if([self max])
    {
        [result setValue:[self max] forKey:@"max"];
    }
    if([self avg])
    {
        [result setValue:[self avg] forKey:@"avg"];
    }
    if([self min])
    {
        [result setValue:[self min] forKey:@"min"];
    }
    if([self total])
    {
        [result setValue:[self total] forKey:@"total"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.pct95 = [dictionary objectForKey:@"pct95"];
    self.max = [dictionary objectForKey:@"max"];
    self.avg = [dictionary objectForKey:@"avg"];
    self.min = [dictionary objectForKey:@"min"];
    self.total = [dictionary objectForKey:@"total"];
    return self;
}
 @end
@implementation DBAccessPrivilege
-(id) initWithAccountName:(NSString*) accountName
      privilege:(NSString*)privilege { 
     self.accountName = accountName;               
     self.privilege = privilege;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self accountName])
    {
        [result setValue:[self accountName] forKey:@"accountName"];
    }
    if([self privilege])
    {
        [result setValue:[self privilege] forKey:@"privilege"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.accountName = [dictionary objectForKey:@"accountName"];
    self.privilege = [dictionary objectForKey:@"privilege"];
    return self;
}
 @end
@implementation IndexPerformanceResult
-(id) initWithDb:(NSString*) db
      table:(NSString*)table
      index:(NSString*)index
      sizeKB:(NSNumber*)sizeKB
      userSeeks:(NSNumber*)userSeeks
      userScans:(NSNumber*)userScans
      userUpdates:(NSNumber*)userUpdates
      lastUserSeek:(NSString*)lastUserSeek
      lastUserScan:(NSString*)lastUserScan
      lastUserUpdate:(NSString*)lastUserUpdate { 
     self.db = db;               
     self.table = table;               
     self.index = index;               
     self.sizeKB = sizeKB;               
     self.userSeeks = userSeeks;               
     self.userScans = userScans;               
     self.userUpdates = userUpdates;               
     self.lastUserSeek = lastUserSeek;               
     self.lastUserScan = lastUserScan;               
     self.lastUserUpdate = lastUserUpdate;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self db])
    {
        [result setValue:[self db] forKey:@"db"];
    }
    if([self table])
    {
        [result setValue:[self table] forKey:@"table"];
    }
    if([self index])
    {
        [result setValue:[self index] forKey:@"index"];
    }
    if([self sizeKB])
    {
        [result setValue:[self sizeKB] forKey:@"sizeKB"];
    }
    if([self userSeeks])
    {
        [result setValue:[self userSeeks] forKey:@"userSeeks"];
    }
    if([self userScans])
    {
        [result setValue:[self userScans] forKey:@"userScans"];
    }
    if([self userUpdates])
    {
        [result setValue:[self userUpdates] forKey:@"userUpdates"];
    }
    if([self lastUserSeek])
    {
        [result setValue:[self lastUserSeek] forKey:@"lastUserSeek"];
    }
    if([self lastUserScan])
    {
        [result setValue:[self lastUserScan] forKey:@"lastUserScan"];
    }
    if([self lastUserUpdate])
    {
        [result setValue:[self lastUserUpdate] forKey:@"lastUserUpdate"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.db = [dictionary objectForKey:@"db"];
    self.table = [dictionary objectForKey:@"table"];
    self.index = [dictionary objectForKey:@"index"];
    self.sizeKB = [dictionary objectForKey:@"sizeKB"];
    self.userSeeks = [dictionary objectForKey:@"userSeeks"];
    self.userScans = [dictionary objectForKey:@"userScans"];
    self.userUpdates = [dictionary objectForKey:@"userUpdates"];
    self.lastUserSeek = [dictionary objectForKey:@"lastUserSeek"];
    self.lastUserScan = [dictionary objectForKey:@"lastUserScan"];
    self.lastUserUpdate = [dictionary objectForKey:@"lastUserUpdate"];
    return self;
}
 @end
@implementation DBInstanceParameter
-(id) initWithName:(NSString*) name
      descriptionValue:(NSString*)descriptionValue
      configureValue:(NSString*)configureValue
      runningValue:(NSString*)runningValue
      range:(NSString*)range
      needRestart:(NSString*)needRestart { 
     self.name = name;               
     self.descriptionValue = descriptionValue;               
     self.configureValue = configureValue;               
     self.runningValue = runningValue;               
     self.range = range;               
     self.needRestart = needRestart;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self name])
    {
        [result setValue:[self name] forKey:@"name"];
    }
    if([self descriptionValue])
    {
        [result setValue:[self descriptionValue] forKey:@"description"];
    }
    if([self configureValue])
    {
        [result setValue:[self configureValue] forKey:@"configureValue"];
    }
    if([self runningValue])
    {
        [result setValue:[self runningValue] forKey:@"runningValue"];
    }
    if([self range])
    {
        [result setValue:[self range] forKey:@"range"];
    }
    if([self needRestart])
    {
        [result setValue:[self needRestart] forKey:@"needRestart"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.name = [dictionary objectForKey:@"name"];
    self.descriptionValue = [dictionary objectForKey:@"description"];
    self.configureValue = [dictionary objectForKey:@"configureValue"];
    self.runningValue = [dictionary objectForKey:@"runningValue"];
    self.range = [dictionary objectForKey:@"range"];
    self.needRestart = [dictionary objectForKey:@"needRestart"];
    return self;
}
 @end
@implementation BackupSynchronicity
-(id) initWithServiceId:(NSString*) serviceId
      instanceId:(NSString*)instanceId
      serviceStatus:(NSString*)serviceStatus
      srcRegion:(NSString*)srcRegion
      destRegion:(NSString*)destRegion
      engine:(NSString*)engine
      engineVersion:(NSString*)engineVersion
      createTime:(NSString*)createTime
      rdsNewestDataTime:(NSString*)rdsNewestDataTime { 
     self.serviceId = serviceId;               
     self.instanceId = instanceId;               
     self.serviceStatus = serviceStatus;               
     self.srcRegion = srcRegion;               
     self.destRegion = destRegion;               
     self.engine = engine;               
     self.engineVersion = engineVersion;               
     self.createTime = createTime;               
     self.rdsNewestDataTime = rdsNewestDataTime;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self serviceId])
    {
        [result setValue:[self serviceId] forKey:@"serviceId"];
    }
    if([self instanceId])
    {
        [result setValue:[self instanceId] forKey:@"instanceId"];
    }
    if([self serviceStatus])
    {
        [result setValue:[self serviceStatus] forKey:@"serviceStatus"];
    }
    if([self srcRegion])
    {
        [result setValue:[self srcRegion] forKey:@"srcRegion"];
    }
    if([self destRegion])
    {
        [result setValue:[self destRegion] forKey:@"destRegion"];
    }
    if([self engine])
    {
        [result setValue:[self engine] forKey:@"engine"];
    }
    if([self engineVersion])
    {
        [result setValue:[self engineVersion] forKey:@"engineVersion"];
    }
    if([self createTime])
    {
        [result setValue:[self createTime] forKey:@"createTime"];
    }
    if([self rdsNewestDataTime])
    {
        [result setValue:[self rdsNewestDataTime] forKey:@"newestDataTime"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.serviceId = [dictionary objectForKey:@"serviceId"];
    self.instanceId = [dictionary objectForKey:@"instanceId"];
    self.serviceStatus = [dictionary objectForKey:@"serviceStatus"];
    self.srcRegion = [dictionary objectForKey:@"srcRegion"];
    self.destRegion = [dictionary objectForKey:@"destRegion"];
    self.engine = [dictionary objectForKey:@"engine"];
    self.engineVersion = [dictionary objectForKey:@"engineVersion"];
    self.createTime = [dictionary objectForKey:@"createTime"];
    self.rdsNewestDataTime = [dictionary objectForKey:@"newestDataTime"];
    return self;
}
 @end
@implementation BackupSynchronicityAbstract
-(id) initWithServiceId:(NSString*) serviceId
      destRegion:(NSString*)destRegion { 
     self.serviceId = serviceId;               
     self.destRegion = destRegion;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self serviceId])
    {
        [result setValue:[self serviceId] forKey:@"serviceId"];
    }
    if([self destRegion])
    {
        [result setValue:[self destRegion] forKey:@"destRegion"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.serviceId = [dictionary objectForKey:@"serviceId"];
    self.destRegion = [dictionary objectForKey:@"destRegion"];
    return self;
}
 @end
@implementation AccountPrivilege
-(id) initWithDbName:(NSString*) dbName
      privilege:(NSString*)privilege { 
     self.dbName = dbName;               
     self.privilege = privilege;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self dbName])
    {
        [result setValue:[self dbName] forKey:@"dbName"];
    }
    if([self privilege])
    {
        [result setValue:[self privilege] forKey:@"privilege"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.dbName = [dictionary objectForKey:@"dbName"];
    self.privilege = [dictionary objectForKey:@"privilege"];
    return self;
}
 @end
@implementation ActiveQueryPerformanceResult
-(id) initWithSql:(NSString*) sql
      startTime:(NSString*)startTime
      elapsedTime:(NSNumber*)elapsedTime
      db:(NSString*)db
      sessionId:(NSString*)sessionId
      user:(NSString*)user
      status:(NSString*)status { 
     self.sql = sql;               
     self.startTime = startTime;               
     self.elapsedTime = elapsedTime;               
     self.db = db;               
     self.sessionId = sessionId;               
     self.user = user;               
     self.status = status;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self sql])
    {
        [result setValue:[self sql] forKey:@"sql"];
    }
    if([self startTime])
    {
        [result setValue:[self startTime] forKey:@"startTime"];
    }
    if([self elapsedTime])
    {
        [result setValue:[self elapsedTime] forKey:@"elapsedTime"];
    }
    if([self db])
    {
        [result setValue:[self db] forKey:@"db"];
    }
    if([self sessionId])
    {
        [result setValue:[self sessionId] forKey:@"sessionId"];
    }
    if([self user])
    {
        [result setValue:[self user] forKey:@"user"];
    }
    if([self status])
    {
        [result setValue:[self status] forKey:@"status"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.sql = [dictionary objectForKey:@"sql"];
    self.startTime = [dictionary objectForKey:@"startTime"];
    self.elapsedTime = [dictionary objectForKey:@"elapsedTime"];
    self.db = [dictionary objectForKey:@"db"];
    self.sessionId = [dictionary objectForKey:@"sessionId"];
    self.user = [dictionary objectForKey:@"user"];
    self.status = [dictionary objectForKey:@"status"];
    return self;
}
 @end
@implementation AuditResult
-(id) initWithStartTime:(NSString*) startTime
      ip:(NSString*)ip
      accountName:(NSString*)accountName
      operation:(NSString*)operation
      threadId:(NSString*)threadId
      dbName:(NSString*)dbName
      sql:(NSString*)sql { 
     self.startTime = startTime;               
     self.ip = ip;               
     self.accountName = accountName;               
     self.operation = operation;               
     self.threadId = threadId;               
     self.dbName = dbName;               
     self.sql = sql;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self startTime])
    {
        [result setValue:[self startTime] forKey:@"startTime"];
    }
    if([self ip])
    {
        [result setValue:[self ip] forKey:@"ip"];
    }
    if([self accountName])
    {
        [result setValue:[self accountName] forKey:@"accountName"];
    }
    if([self operation])
    {
        [result setValue:[self operation] forKey:@"operation"];
    }
    if([self threadId])
    {
        [result setValue:[self threadId] forKey:@"threadId"];
    }
    if([self dbName])
    {
        [result setValue:[self dbName] forKey:@"dbName"];
    }
    if([self sql])
    {
        [result setValue:[self sql] forKey:@"sql"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.startTime = [dictionary objectForKey:@"startTime"];
    self.ip = [dictionary objectForKey:@"ip"];
    self.accountName = [dictionary objectForKey:@"accountName"];
    self.operation = [dictionary objectForKey:@"operation"];
    self.threadId = [dictionary objectForKey:@"threadId"];
    self.dbName = [dictionary objectForKey:@"dbName"];
    self.sql = [dictionary objectForKey:@"sql"];
    return self;
}
 @end
@implementation BackupSpec
-(id) initWithBackupName:(NSString*) backupName
      dbNames:(NSArray<NSString*>*)dbNames { 
     self.backupName = backupName;               
     self.dbNames = dbNames;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self backupName])
    {
        [result setValue:[self backupName] forKey:@"backupName"];
    }
    if([self dbNames])
    {
        [result setValue:[self dbNames] forKey:@"dbNames"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.backupName = [dictionary objectForKey:@"backupName"];
    self.dbNames = [dictionary objectForKey:@"dbNames"];
    return self;
}
 @end
@implementation AttachedDBInstance
-(id) initWithInstanceId:(NSString*) instanceId
      instanceName:(NSString*)instanceName
      instanceType:(NSString*)instanceType
      engine:(NSString*)engine
      engineVersion:(NSString*)engineVersion
      parameterGroupId:(NSString*)parameterGroupId
      parameterStatus:(NSString*)parameterStatus
      instanceStatus:(NSString*)instanceStatus
      createTime:(NSString*)createTime { 
     self.instanceId = instanceId;               
     self.instanceName = instanceName;               
     self.instanceType = instanceType;               
     self.engine = engine;               
     self.engineVersion = engineVersion;               
     self.parameterGroupId = parameterGroupId;               
     self.parameterStatus = parameterStatus;               
     self.instanceStatus = instanceStatus;               
     self.createTime = createTime;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self instanceId])
    {
        [result setValue:[self instanceId] forKey:@"instanceId"];
    }
    if([self instanceName])
    {
        [result setValue:[self instanceName] forKey:@"instanceName"];
    }
    if([self instanceType])
    {
        [result setValue:[self instanceType] forKey:@"instanceType"];
    }
    if([self engine])
    {
        [result setValue:[self engine] forKey:@"engine"];
    }
    if([self engineVersion])
    {
        [result setValue:[self engineVersion] forKey:@"engineVersion"];
    }
    if([self parameterGroupId])
    {
        [result setValue:[self parameterGroupId] forKey:@"parameterGroupId"];
    }
    if([self parameterStatus])
    {
        [result setValue:[self parameterStatus] forKey:@"parameterStatus"];
    }
    if([self instanceStatus])
    {
        [result setValue:[self instanceStatus] forKey:@"instanceStatus"];
    }
    if([self createTime])
    {
        [result setValue:[self createTime] forKey:@"createTime"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.instanceId = [dictionary objectForKey:@"instanceId"];
    self.instanceName = [dictionary objectForKey:@"instanceName"];
    self.instanceType = [dictionary objectForKey:@"instanceType"];
    self.engine = [dictionary objectForKey:@"engine"];
    self.engineVersion = [dictionary objectForKey:@"engineVersion"];
    self.parameterGroupId = [dictionary objectForKey:@"parameterGroupId"];
    self.parameterStatus = [dictionary objectForKey:@"parameterStatus"];
    self.instanceStatus = [dictionary objectForKey:@"instanceStatus"];
    self.createTime = [dictionary objectForKey:@"createTime"];
    return self;
}
 @end
@implementation AuditFile
-(id) initWithName:(NSString*) name
      sizeByte:(NSNumber*)sizeByte
      lastUpdateTime:(NSString*)lastUpdateTime
      uploadTime:(NSString*)uploadTime { 
     self.name = name;               
     self.sizeByte = sizeByte;               
     self.lastUpdateTime = lastUpdateTime;               
     self.uploadTime = uploadTime;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self name])
    {
        [result setValue:[self name] forKey:@"name"];
    }
    if([self sizeByte])
    {
        [result setValue:[self sizeByte] forKey:@"sizeByte"];
    }
    if([self lastUpdateTime])
    {
        [result setValue:[self lastUpdateTime] forKey:@"lastUpdateTime"];
    }
    if([self uploadTime])
    {
        [result setValue:[self uploadTime] forKey:@"uploadTime"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.name = [dictionary objectForKey:@"name"];
    self.sizeByte = [dictionary objectForKey:@"sizeByte"];
    self.lastUpdateTime = [dictionary objectForKey:@"lastUpdateTime"];
    self.uploadTime = [dictionary objectForKey:@"uploadTime"];
    return self;
}
 @end
@implementation Parameter
-(id) initWithName:(NSString*) name
      value:(NSString*)value { 
     self.name = name;               
     self.value = value;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self name])
    {
        [result setValue:[self name] forKey:@"name"];
    }
    if([self value])
    {
        [result setValue:[self value] forKey:@"value"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.name = [dictionary objectForKey:@"name"];
    self.value = [dictionary objectForKey:@"value"];
    return self;
}
 @end
@implementation ParameterGroup
-(id) initWithParameterGroupId:(NSString*) parameterGroupId
      parameterGroupName:(NSString*)parameterGroupName
      parameterGroupStatus:(NSString*)parameterGroupStatus
      descriptionValue:(NSString*)descriptionValue
      engine:(NSString*)engine
      engineVersion:(NSString*)engineVersion
      regionId:(NSString*)regionId
      createTime:(NSString*)createTime { 
     self.parameterGroupId = parameterGroupId;               
     self.parameterGroupName = parameterGroupName;               
     self.parameterGroupStatus = parameterGroupStatus;               
     self.descriptionValue = descriptionValue;               
     self.engine = engine;               
     self.engineVersion = engineVersion;               
     self.regionId = regionId;               
     self.createTime = createTime;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self parameterGroupId])
    {
        [result setValue:[self parameterGroupId] forKey:@"parameterGroupId"];
    }
    if([self parameterGroupName])
    {
        [result setValue:[self parameterGroupName] forKey:@"parameterGroupName"];
    }
    if([self parameterGroupStatus])
    {
        [result setValue:[self parameterGroupStatus] forKey:@"parameterGroupStatus"];
    }
    if([self descriptionValue])
    {
        [result setValue:[self descriptionValue] forKey:@"description"];
    }
    if([self engine])
    {
        [result setValue:[self engine] forKey:@"engine"];
    }
    if([self engineVersion])
    {
        [result setValue:[self engineVersion] forKey:@"engineVersion"];
    }
    if([self regionId])
    {
        [result setValue:[self regionId] forKey:@"regionId"];
    }
    if([self createTime])
    {
        [result setValue:[self createTime] forKey:@"createTime"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.parameterGroupId = [dictionary objectForKey:@"parameterGroupId"];
    self.parameterGroupName = [dictionary objectForKey:@"parameterGroupName"];
    self.parameterGroupStatus = [dictionary objectForKey:@"parameterGroupStatus"];
    self.descriptionValue = [dictionary objectForKey:@"description"];
    self.engine = [dictionary objectForKey:@"engine"];
    self.engineVersion = [dictionary objectForKey:@"engineVersion"];
    self.regionId = [dictionary objectForKey:@"regionId"];
    self.createTime = [dictionary objectForKey:@"createTime"];
    return self;
}
 @end
@implementation DBInstanceSpecWithoutCharge
-(id) initWithInstanceName:(NSString*) instanceName
      engine:(NSString*)engine
      engineVersion:(NSString*)engineVersion
      instanceClass:(NSString*)instanceClass
      instanceStorageGB:(NSNumber*)instanceStorageGB
      azId:(NSArray<NSString*>*)azId
      vpcId:(NSString*)vpcId
      subnetId:(NSString*)subnetId
      parameterGroup:(NSString*)parameterGroup
      instanceStorageType:(NSString*)instanceStorageType
      storageEncrypted:(NSNumber*)storageEncrypted
      instanceType:(NSString*)instanceType { 
     self.instanceName = instanceName;               
     self.engine = engine;               
     self.engineVersion = engineVersion;               
     self.instanceClass = instanceClass;               
     self.instanceStorageGB = instanceStorageGB;               
     self.azId = azId;               
     self.vpcId = vpcId;               
     self.subnetId = subnetId;               
     self.parameterGroup = parameterGroup;               
     self.instanceStorageType = instanceStorageType;               
     self.storageEncrypted = storageEncrypted;               
     self.instanceType = instanceType;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self instanceName])
    {
        [result setValue:[self instanceName] forKey:@"instanceName"];
    }
    if([self engine])
    {
        [result setValue:[self engine] forKey:@"engine"];
    }
    if([self engineVersion])
    {
        [result setValue:[self engineVersion] forKey:@"engineVersion"];
    }
    if([self instanceClass])
    {
        [result setValue:[self instanceClass] forKey:@"instanceClass"];
    }
    if([self instanceStorageGB])
    {
        [result setValue:[self instanceStorageGB] forKey:@"instanceStorageGB"];
    }
    if([self azId])
    {
        [result setValue:[self azId] forKey:@"azId"];
    }
    if([self vpcId])
    {
        [result setValue:[self vpcId] forKey:@"vpcId"];
    }
    if([self subnetId])
    {
        [result setValue:[self subnetId] forKey:@"subnetId"];
    }
    if([self parameterGroup])
    {
        [result setValue:[self parameterGroup] forKey:@"parameterGroup"];
    }
    if([self instanceStorageType])
    {
        [result setValue:[self instanceStorageType] forKey:@"instanceStorageType"];
    }
    if([self storageEncrypted])
    {
        [result setValue:[self storageEncrypted] forKey:@"storageEncrypted"];
    }
    if([self instanceType])
    {
        [result setValue:[self instanceType] forKey:@"instanceType"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.instanceName = [dictionary objectForKey:@"instanceName"];
    self.engine = [dictionary objectForKey:@"engine"];
    self.engineVersion = [dictionary objectForKey:@"engineVersion"];
    self.instanceClass = [dictionary objectForKey:@"instanceClass"];
    self.instanceStorageGB = [dictionary objectForKey:@"instanceStorageGB"];
    self.azId = [dictionary objectForKey:@"azId"];
    self.vpcId = [dictionary objectForKey:@"vpcId"];
    self.subnetId = [dictionary objectForKey:@"subnetId"];
    self.parameterGroup = [dictionary objectForKey:@"parameterGroup"];
    self.instanceStorageType = [dictionary objectForKey:@"instanceStorageType"];
    self.storageEncrypted = [dictionary objectForKey:@"storageEncrypted"];
    self.instanceType = [dictionary objectForKey:@"instanceType"];
    return self;
}
 @end
@implementation SlowLogAttributes
-(id) initWithDbName:(NSString*) dbName
      sql:(NSString*)sql
      executionTime:(NSString*)executionTime
      elapsedTime:(NSNumber*)elapsedTime
      lockTime:(NSNumber*)lockTime
      rowsExamined:(NSNumber*)rowsExamined
      rowsReturned:(NSNumber*)rowsReturned { 
     self.dbName = dbName;               
     self.sql = sql;               
     self.executionTime = executionTime;               
     self.elapsedTime = elapsedTime;               
     self.lockTime = lockTime;               
     self.rowsExamined = rowsExamined;               
     self.rowsReturned = rowsReturned;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self dbName])
    {
        [result setValue:[self dbName] forKey:@"dbName"];
    }
    if([self sql])
    {
        [result setValue:[self sql] forKey:@"sql"];
    }
    if([self executionTime])
    {
        [result setValue:[self executionTime] forKey:@"executionTime"];
    }
    if([self elapsedTime])
    {
        [result setValue:[self elapsedTime] forKey:@"elapsedTime"];
    }
    if([self lockTime])
    {
        [result setValue:[self lockTime] forKey:@"lockTime"];
    }
    if([self rowsExamined])
    {
        [result setValue:[self rowsExamined] forKey:@"rowsExamined"];
    }
    if([self rowsReturned])
    {
        [result setValue:[self rowsReturned] forKey:@"rowsReturned"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.dbName = [dictionary objectForKey:@"dbName"];
    self.sql = [dictionary objectForKey:@"sql"];
    self.executionTime = [dictionary objectForKey:@"executionTime"];
    self.elapsedTime = [dictionary objectForKey:@"elapsedTime"];
    self.lockTime = [dictionary objectForKey:@"lockTime"];
    self.rowsExamined = [dictionary objectForKey:@"rowsExamined"];
    self.rowsReturned = [dictionary objectForKey:@"rowsReturned"];
    return self;
}
 @end
@implementation DBInstanceAttribute
-(id) initWithInstanceId:(NSString*) instanceId
      instanceName:(NSString*)instanceName
      instanceType:(NSString*)instanceType
      engine:(NSString*)engine
      engineVersion:(NSString*)engineVersion
      instanceClass:(NSString*)instanceClass
      instanceStorageType:(NSString*)instanceStorageType
      storageEncrypted:(NSNumber*)storageEncrypted
      instanceStorageGB:(NSNumber*)instanceStorageGB
      instanceCPU:(NSNumber*)instanceCPU
      instanceMemoryMB:(NSNumber*)instanceMemoryMB
      regionId:(NSString*)regionId
      azId:(NSArray<NSString*>*)azId
      vpcId:(NSString*)vpcId
      subnetId:(NSString*)subnetId
      parameterGroupId:(NSString*)parameterGroupId
      parameterGroupName:(NSString*)parameterGroupName
      parameterStatus:(NSString*)parameterStatus
      internalDomainName:(NSString*)internalDomainName
      publicDomainName:(NSString*)publicDomainName
      instancePort:(NSString*)instancePort
      connectionMode:(NSString*)connectionMode
      auditStatus:(NSString*)auditStatus
      instanceStatus:(NSString*)instanceStatus
      createTime:(NSString*)createTime
      charge:(Charge*)charge
      sourceInstanceId:(NSString*)sourceInstanceId
      roInstanceIds:(NSArray<NSString*>*)roInstanceIds
      primaryNode:(DBInstanceNode*)primaryNode
      secondaryNode:(DBInstanceNode*)secondaryNode
      tags:(NSArray<Tag*>*)tags { 
     self.instanceId = instanceId;               
     self.instanceName = instanceName;               
     self.instanceType = instanceType;               
     self.engine = engine;               
     self.engineVersion = engineVersion;               
     self.instanceClass = instanceClass;               
     self.instanceStorageType = instanceStorageType;               
     self.storageEncrypted = storageEncrypted;               
     self.instanceStorageGB = instanceStorageGB;               
     self.instanceCPU = instanceCPU;               
     self.instanceMemoryMB = instanceMemoryMB;               
     self.regionId = regionId;               
     self.azId = azId;               
     self.vpcId = vpcId;               
     self.subnetId = subnetId;               
     self.parameterGroupId = parameterGroupId;               
     self.parameterGroupName = parameterGroupName;               
     self.parameterStatus = parameterStatus;               
     self.internalDomainName = internalDomainName;               
     self.publicDomainName = publicDomainName;               
     self.instancePort = instancePort;               
     self.connectionMode = connectionMode;               
     self.auditStatus = auditStatus;               
     self.instanceStatus = instanceStatus;               
     self.createTime = createTime;               
     self.charge = charge;               
     self.sourceInstanceId = sourceInstanceId;               
     self.roInstanceIds = roInstanceIds;               
     self.primaryNode = primaryNode;               
     self.secondaryNode = secondaryNode;               
     self.tags = tags;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self instanceId])
    {
        [result setValue:[self instanceId] forKey:@"instanceId"];
    }
    if([self instanceName])
    {
        [result setValue:[self instanceName] forKey:@"instanceName"];
    }
    if([self instanceType])
    {
        [result setValue:[self instanceType] forKey:@"instanceType"];
    }
    if([self engine])
    {
        [result setValue:[self engine] forKey:@"engine"];
    }
    if([self engineVersion])
    {
        [result setValue:[self engineVersion] forKey:@"engineVersion"];
    }
    if([self instanceClass])
    {
        [result setValue:[self instanceClass] forKey:@"instanceClass"];
    }
    if([self instanceStorageType])
    {
        [result setValue:[self instanceStorageType] forKey:@"instanceStorageType"];
    }
    if([self storageEncrypted])
    {
        [result setValue:[self storageEncrypted] forKey:@"storageEncrypted"];
    }
    if([self instanceStorageGB])
    {
        [result setValue:[self instanceStorageGB] forKey:@"instanceStorageGB"];
    }
    if([self instanceCPU])
    {
        [result setValue:[self instanceCPU] forKey:@"instanceCPU"];
    }
    if([self instanceMemoryMB])
    {
        [result setValue:[self instanceMemoryMB] forKey:@"instanceMemoryMB"];
    }
    if([self regionId])
    {
        [result setValue:[self regionId] forKey:@"regionId"];
    }
    if([self azId])
    {
        [result setValue:[self azId] forKey:@"azId"];
    }
    if([self vpcId])
    {
        [result setValue:[self vpcId] forKey:@"vpcId"];
    }
    if([self subnetId])
    {
        [result setValue:[self subnetId] forKey:@"subnetId"];
    }
    if([self parameterGroupId])
    {
        [result setValue:[self parameterGroupId] forKey:@"parameterGroupId"];
    }
    if([self parameterGroupName])
    {
        [result setValue:[self parameterGroupName] forKey:@"parameterGroupName"];
    }
    if([self parameterStatus])
    {
        [result setValue:[self parameterStatus] forKey:@"parameterStatus"];
    }
    if([self internalDomainName])
    {
        [result setValue:[self internalDomainName] forKey:@"internalDomainName"];
    }
    if([self publicDomainName])
    {
        [result setValue:[self publicDomainName] forKey:@"publicDomainName"];
    }
    if([self instancePort])
    {
        [result setValue:[self instancePort] forKey:@"instancePort"];
    }
    if([self connectionMode])
    {
        [result setValue:[self connectionMode] forKey:@"connectionMode"];
    }
    if([self auditStatus])
    {
        [result setValue:[self auditStatus] forKey:@"auditStatus"];
    }
    if([self instanceStatus])
    {
        [result setValue:[self instanceStatus] forKey:@"instanceStatus"];
    }
    if([self createTime])
    {
        [result setValue:[self createTime] forKey:@"createTime"];
    }
    if([self charge])
    {
        [result setValue:[[self charge] dictionary]forKey:@"charge"];
    }
    if([self sourceInstanceId])
    {
        [result setValue:[self sourceInstanceId] forKey:@"sourceInstanceId"];
    }
    if([self roInstanceIds])
    {
        [result setValue:[self roInstanceIds] forKey:@"roInstanceIds"];
    }
    if([self primaryNode])
    {
        [result setValue:[[self primaryNode] dictionary]forKey:@"primaryNode"];
    }
    if([self secondaryNode])
    {
        [result setValue:[[self secondaryNode] dictionary]forKey:@"secondaryNode"];
    }
    if([self tags])
    {
        NSMutableArray<NSDictionary*>* arrayDic  = [[NSMutableArray alloc] init];
        for (int i =0 ; i< [[self tags] count]; i++) {
            Tag* item = [[self tags] objectAtIndex:i];
            [arrayDic addObject:[item dictionary]];
        }
        [result setValue:arrayDic forKey:@"tags"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.instanceId = [dictionary objectForKey:@"instanceId"];
    self.instanceName = [dictionary objectForKey:@"instanceName"];
    self.instanceType = [dictionary objectForKey:@"instanceType"];
    self.engine = [dictionary objectForKey:@"engine"];
    self.engineVersion = [dictionary objectForKey:@"engineVersion"];
    self.instanceClass = [dictionary objectForKey:@"instanceClass"];
    self.instanceStorageType = [dictionary objectForKey:@"instanceStorageType"];
    self.storageEncrypted = [dictionary objectForKey:@"storageEncrypted"];
    self.instanceStorageGB = [dictionary objectForKey:@"instanceStorageGB"];
    self.instanceCPU = [dictionary objectForKey:@"instanceCPU"];
    self.instanceMemoryMB = [dictionary objectForKey:@"instanceMemoryMB"];
    self.regionId = [dictionary objectForKey:@"regionId"];
    self.azId = [dictionary objectForKey:@"azId"];
    self.vpcId = [dictionary objectForKey:@"vpcId"];
    self.subnetId = [dictionary objectForKey:@"subnetId"];
    self.parameterGroupId = [dictionary objectForKey:@"parameterGroupId"];
    self.parameterGroupName = [dictionary objectForKey:@"parameterGroupName"];
    self.parameterStatus = [dictionary objectForKey:@"parameterStatus"];
    self.internalDomainName = [dictionary objectForKey:@"internalDomainName"];
    self.publicDomainName = [dictionary objectForKey:@"publicDomainName"];
    self.instancePort = [dictionary objectForKey:@"instancePort"];
    self.connectionMode = [dictionary objectForKey:@"connectionMode"];
    self.auditStatus = [dictionary objectForKey:@"auditStatus"];
    self.instanceStatus = [dictionary objectForKey:@"instanceStatus"];
    self.createTime = [dictionary objectForKey:@"createTime"];
    self.charge = [[Charge alloc]initWithDic:[dictionary objectForKey:@"charge"]];
    self.sourceInstanceId = [dictionary objectForKey:@"sourceInstanceId"];
    self.roInstanceIds = [dictionary objectForKey:@"roInstanceIds"];
    self.primaryNode = [[DBInstanceNode alloc]initWithDic:[dictionary objectForKey:@"primaryNode"]];
    self.secondaryNode = [[DBInstanceNode alloc]initWithDic:[dictionary objectForKey:@"secondaryNode"]];
    NSArray* tagsArray = [dictionary objectForKey:@"tags"];
    if(tagsArray&&![tagsArray isKindOfClass:[NSNull class]])
    {
        NSMutableArray* propertyArray = [[NSMutableArray alloc]init];
        for(int i = 0 ; i< [tagsArray count];i++)
        {
            Tag* item = [[Tag alloc]initWithDic:[tagsArray objectAtIndex:i]];
            if(item)
            {
                [propertyArray addObject:item];
            }
        }
        self.tags = propertyArray;
    }
    return self;
}
 @end
@implementation DBInstanceSpec
-(id) initWithInstanceName:(NSString*) instanceName
      engine:(NSString*)engine
      engineVersion:(NSString*)engineVersion
      instanceClass:(NSString*)instanceClass
      instanceStorageGB:(NSNumber*)instanceStorageGB
      azId:(NSArray<NSString*>*)azId
      vpcId:(NSString*)vpcId
      subnetId:(NSString*)subnetId
      parameterGroup:(NSString*)parameterGroup
      chargeSpec:(ChargeSpec*)chargeSpec
      instanceStorageType:(NSString*)instanceStorageType
      instancePort:(NSString*)instancePort
      storageEncrypted:(NSNumber*)storageEncrypted
      instanceType:(NSString*)instanceType { 
     self.instanceName = instanceName;               
     self.engine = engine;               
     self.engineVersion = engineVersion;               
     self.instanceClass = instanceClass;               
     self.instanceStorageGB = instanceStorageGB;               
     self.azId = azId;               
     self.vpcId = vpcId;               
     self.subnetId = subnetId;               
     self.parameterGroup = parameterGroup;               
     self.chargeSpec = chargeSpec;               
     self.instanceStorageType = instanceStorageType;               
     self.instancePort = instancePort;               
     self.storageEncrypted = storageEncrypted;               
     self.instanceType = instanceType;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self instanceName])
    {
        [result setValue:[self instanceName] forKey:@"instanceName"];
    }
    if([self engine])
    {
        [result setValue:[self engine] forKey:@"engine"];
    }
    if([self engineVersion])
    {
        [result setValue:[self engineVersion] forKey:@"engineVersion"];
    }
    if([self instanceClass])
    {
        [result setValue:[self instanceClass] forKey:@"instanceClass"];
    }
    if([self instanceStorageGB])
    {
        [result setValue:[self instanceStorageGB] forKey:@"instanceStorageGB"];
    }
    if([self azId])
    {
        [result setValue:[self azId] forKey:@"azId"];
    }
    if([self vpcId])
    {
        [result setValue:[self vpcId] forKey:@"vpcId"];
    }
    if([self subnetId])
    {
        [result setValue:[self subnetId] forKey:@"subnetId"];
    }
    if([self parameterGroup])
    {
        [result setValue:[self parameterGroup] forKey:@"parameterGroup"];
    }
    if([self chargeSpec])
    {
        [result setValue:[[self chargeSpec] dictionary]forKey:@"chargeSpec"];
    }
    if([self instanceStorageType])
    {
        [result setValue:[self instanceStorageType] forKey:@"instanceStorageType"];
    }
    if([self instancePort])
    {
        [result setValue:[self instancePort] forKey:@"instancePort"];
    }
    if([self storageEncrypted])
    {
        [result setValue:[self storageEncrypted] forKey:@"storageEncrypted"];
    }
    if([self instanceType])
    {
        [result setValue:[self instanceType] forKey:@"instanceType"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.instanceName = [dictionary objectForKey:@"instanceName"];
    self.engine = [dictionary objectForKey:@"engine"];
    self.engineVersion = [dictionary objectForKey:@"engineVersion"];
    self.instanceClass = [dictionary objectForKey:@"instanceClass"];
    self.instanceStorageGB = [dictionary objectForKey:@"instanceStorageGB"];
    self.azId = [dictionary objectForKey:@"azId"];
    self.vpcId = [dictionary objectForKey:@"vpcId"];
    self.subnetId = [dictionary objectForKey:@"subnetId"];
    self.parameterGroup = [dictionary objectForKey:@"parameterGroup"];
    self.chargeSpec = [[ChargeSpec alloc]initWithDic:[dictionary objectForKey:@"chargeSpec"]];
    self.instanceStorageType = [dictionary objectForKey:@"instanceStorageType"];
    self.instancePort = [dictionary objectForKey:@"instancePort"];
    self.storageEncrypted = [dictionary objectForKey:@"storageEncrypted"];
    self.instanceType = [dictionary objectForKey:@"instanceType"];
    return self;
}
 @end
@implementation Database
-(id) initWithDbName:(NSString*) dbName
      dbStatus:(NSString*)dbStatus
      characterSetName:(NSString*)characterSetName
      createTime:(NSString*)createTime
      accessPrivilege:(NSArray<DBAccessPrivilege*>*)accessPrivilege { 
     self.dbName = dbName;               
     self.dbStatus = dbStatus;               
     self.characterSetName = characterSetName;               
     self.createTime = createTime;               
     self.accessPrivilege = accessPrivilege;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self dbName])
    {
        [result setValue:[self dbName] forKey:@"dbName"];
    }
    if([self dbStatus])
    {
        [result setValue:[self dbStatus] forKey:@"dbStatus"];
    }
    if([self characterSetName])
    {
        [result setValue:[self characterSetName] forKey:@"characterSetName"];
    }
    if([self createTime])
    {
        [result setValue:[self createTime] forKey:@"createTime"];
    }
    if([self accessPrivilege])
    {
        NSMutableArray<NSDictionary*>* arrayDic  = [[NSMutableArray alloc] init];
        for (int i =0 ; i< [[self accessPrivilege] count]; i++) {
            DBAccessPrivilege* item = [[self accessPrivilege] objectAtIndex:i];
            [arrayDic addObject:[item dictionary]];
        }
        [result setValue:arrayDic forKey:@"accessPrivilege"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.dbName = [dictionary objectForKey:@"dbName"];
    self.dbStatus = [dictionary objectForKey:@"dbStatus"];
    self.characterSetName = [dictionary objectForKey:@"characterSetName"];
    self.createTime = [dictionary objectForKey:@"createTime"];
    NSArray* accessPrivilegeArray = [dictionary objectForKey:@"accessPrivilege"];
    if(accessPrivilegeArray&&![accessPrivilegeArray isKindOfClass:[NSNull class]])
    {
        NSMutableArray* propertyArray = [[NSMutableArray alloc]init];
        for(int i = 0 ; i< [accessPrivilegeArray count];i++)
        {
            DBAccessPrivilege* item = [[DBAccessPrivilege alloc]initWithDic:[accessPrivilegeArray objectAtIndex:i]];
            if(item)
            {
                [propertyArray addObject:item];
            }
        }
        self.accessPrivilege = propertyArray;
    }
    return self;
}
 @end
@implementation SlowLogDigest
-(id) initWithDbName:(NSString*) dbName
      sql:(NSString*)sql
      executionTime:(NSString*)executionTime
      executionCount:(NSNumber*)executionCount
      elapsedTime:(DigestData*)elapsedTime
      lockTime:(DigestData*)lockTime
      sqlLength:(DigestData*)sqlLength
      rowsExamined:(DigestData*)rowsExamined
      rowsReturned:(DigestData*)rowsReturned { 
     self.dbName = dbName;               
     self.sql = sql;               
     self.executionTime = executionTime;               
     self.executionCount = executionCount;               
     self.elapsedTime = elapsedTime;               
     self.lockTime = lockTime;               
     self.sqlLength = sqlLength;               
     self.rowsExamined = rowsExamined;               
     self.rowsReturned = rowsReturned;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self dbName])
    {
        [result setValue:[self dbName] forKey:@"dbName"];
    }
    if([self sql])
    {
        [result setValue:[self sql] forKey:@"sql"];
    }
    if([self executionTime])
    {
        [result setValue:[self executionTime] forKey:@"executionTime"];
    }
    if([self executionCount])
    {
        [result setValue:[self executionCount] forKey:@"executionCount"];
    }
    if([self elapsedTime])
    {
        [result setValue:[[self elapsedTime] dictionary]forKey:@"elapsedTime"];
    }
    if([self lockTime])
    {
        [result setValue:[[self lockTime] dictionary]forKey:@"lockTime"];
    }
    if([self sqlLength])
    {
        [result setValue:[[self sqlLength] dictionary]forKey:@"sqlLength"];
    }
    if([self rowsExamined])
    {
        [result setValue:[[self rowsExamined] dictionary]forKey:@"rowsExamined"];
    }
    if([self rowsReturned])
    {
        [result setValue:[[self rowsReturned] dictionary]forKey:@"rowsReturned"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.dbName = [dictionary objectForKey:@"dbName"];
    self.sql = [dictionary objectForKey:@"sql"];
    self.executionTime = [dictionary objectForKey:@"executionTime"];
    self.executionCount = [dictionary objectForKey:@"executionCount"];
    self.elapsedTime = [[DigestData alloc]initWithDic:[dictionary objectForKey:@"elapsedTime"]];
    self.lockTime = [[DigestData alloc]initWithDic:[dictionary objectForKey:@"lockTime"]];
    self.sqlLength = [[DigestData alloc]initWithDic:[dictionary objectForKey:@"sqlLength"]];
    self.rowsExamined = [[DigestData alloc]initWithDic:[dictionary objectForKey:@"rowsExamined"]];
    self.rowsReturned = [[DigestData alloc]initWithDic:[dictionary objectForKey:@"rowsReturned"]];
    return self;
}
 @end
@implementation Account
-(id) initWithAccountName:(NSString*) accountName
      accountStatus:(NSString*)accountStatus
      accountPrivileges:(NSArray<AccountPrivilege*>*)accountPrivileges { 
     self.accountName = accountName;               
     self.accountStatus = accountStatus;               
     self.accountPrivileges = accountPrivileges;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self accountName])
    {
        [result setValue:[self accountName] forKey:@"accountName"];
    }
    if([self accountStatus])
    {
        [result setValue:[self accountStatus] forKey:@"accountStatus"];
    }
    if([self accountPrivileges])
    {
        NSMutableArray<NSDictionary*>* arrayDic  = [[NSMutableArray alloc] init];
        for (int i =0 ; i< [[self accountPrivileges] count]; i++) {
            AccountPrivilege* item = [[self accountPrivileges] objectAtIndex:i];
            [arrayDic addObject:[item dictionary]];
        }
        [result setValue:arrayDic forKey:@"accountPrivileges"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.accountName = [dictionary objectForKey:@"accountName"];
    self.accountStatus = [dictionary objectForKey:@"accountStatus"];
    NSArray* accountPrivilegesArray = [dictionary objectForKey:@"accountPrivileges"];
    if(accountPrivilegesArray&&![accountPrivilegesArray isKindOfClass:[NSNull class]])
    {
        NSMutableArray* propertyArray = [[NSMutableArray alloc]init];
        for(int i = 0 ; i< [accountPrivilegesArray count];i++)
        {
            AccountPrivilege* item = [[AccountPrivilege alloc]initWithDic:[accountPrivilegesArray objectAtIndex:i]];
            if(item)
            {
                [propertyArray addObject:item];
            }
        }
        self.accountPrivileges = propertyArray;
    }
    return self;
}
 @end
@implementation RestoredNewDBInstanceSpec
-(id) initWithInstanceName:(NSString*) instanceName
      instanceClass:(NSString*)instanceClass
      instanceStorageGB:(NSNumber*)instanceStorageGB
      azId:(NSArray<NSString*>*)azId
      vpcId:(NSString*)vpcId
      subnetId:(NSString*)subnetId
      parameterGroup:(NSString*)parameterGroup
      chargeSpec:(ChargeSpec*)chargeSpec
      instanceStorageType:(NSString*)instanceStorageType
      instancePort:(NSString*)instancePort
      storageEncrypted:(NSNumber*)storageEncrypted
      instanceType:(NSString*)instanceType { 
     self.instanceName = instanceName;               
     self.instanceClass = instanceClass;               
     self.instanceStorageGB = instanceStorageGB;               
     self.azId = azId;               
     self.vpcId = vpcId;               
     self.subnetId = subnetId;               
     self.parameterGroup = parameterGroup;               
     self.chargeSpec = chargeSpec;               
     self.instanceStorageType = instanceStorageType;               
     self.instancePort = instancePort;               
     self.storageEncrypted = storageEncrypted;               
     self.instanceType = instanceType;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self instanceName])
    {
        [result setValue:[self instanceName] forKey:@"instanceName"];
    }
    if([self instanceClass])
    {
        [result setValue:[self instanceClass] forKey:@"instanceClass"];
    }
    if([self instanceStorageGB])
    {
        [result setValue:[self instanceStorageGB] forKey:@"instanceStorageGB"];
    }
    if([self azId])
    {
        [result setValue:[self azId] forKey:@"azId"];
    }
    if([self vpcId])
    {
        [result setValue:[self vpcId] forKey:@"vpcId"];
    }
    if([self subnetId])
    {
        [result setValue:[self subnetId] forKey:@"subnetId"];
    }
    if([self parameterGroup])
    {
        [result setValue:[self parameterGroup] forKey:@"parameterGroup"];
    }
    if([self chargeSpec])
    {
        [result setValue:[[self chargeSpec] dictionary]forKey:@"chargeSpec"];
    }
    if([self instanceStorageType])
    {
        [result setValue:[self instanceStorageType] forKey:@"instanceStorageType"];
    }
    if([self instancePort])
    {
        [result setValue:[self instancePort] forKey:@"instancePort"];
    }
    if([self storageEncrypted])
    {
        [result setValue:[self storageEncrypted] forKey:@"storageEncrypted"];
    }
    if([self instanceType])
    {
        [result setValue:[self instanceType] forKey:@"instanceType"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.instanceName = [dictionary objectForKey:@"instanceName"];
    self.instanceClass = [dictionary objectForKey:@"instanceClass"];
    self.instanceStorageGB = [dictionary objectForKey:@"instanceStorageGB"];
    self.azId = [dictionary objectForKey:@"azId"];
    self.vpcId = [dictionary objectForKey:@"vpcId"];
    self.subnetId = [dictionary objectForKey:@"subnetId"];
    self.parameterGroup = [dictionary objectForKey:@"parameterGroup"];
    self.chargeSpec = [[ChargeSpec alloc]initWithDic:[dictionary objectForKey:@"chargeSpec"]];
    self.instanceStorageType = [dictionary objectForKey:@"instanceStorageType"];
    self.instancePort = [dictionary objectForKey:@"instancePort"];
    self.storageEncrypted = [dictionary objectForKey:@"storageEncrypted"];
    self.instanceType = [dictionary objectForKey:@"instanceType"];
    return self;
}
 @end
@implementation DBInstance
-(id) initWithInstanceId:(NSString*) instanceId
      instanceName:(NSString*)instanceName
      instanceType:(NSString*)instanceType
      engine:(NSString*)engine
      engineVersion:(NSString*)engineVersion
      instanceClass:(NSString*)instanceClass
      instanceStorageGB:(NSNumber*)instanceStorageGB
      instanceCPU:(NSNumber*)instanceCPU
      instanceMemoryMB:(NSNumber*)instanceMemoryMB
      regionId:(NSString*)regionId
      azId:(NSArray<NSString*>*)azId
      vpcId:(NSString*)vpcId
      subnetId:(NSString*)subnetId
      instanceStatus:(NSString*)instanceStatus
      publicDomainName:(NSString*)publicDomainName
      internalDomainName:(NSString*)internalDomainName
      createTime:(NSString*)createTime
      backupSynchronicity:(NSArray<BackupSynchronicityAbstract*>*)backupSynchronicity
      charge:(Charge*)charge
      tags:(NSArray<Tag*>*)tags
      sourceInstanceId:(NSString*)sourceInstanceId { 
     self.instanceId = instanceId;               
     self.instanceName = instanceName;               
     self.instanceType = instanceType;               
     self.engine = engine;               
     self.engineVersion = engineVersion;               
     self.instanceClass = instanceClass;               
     self.instanceStorageGB = instanceStorageGB;               
     self.instanceCPU = instanceCPU;               
     self.instanceMemoryMB = instanceMemoryMB;               
     self.regionId = regionId;               
     self.azId = azId;               
     self.vpcId = vpcId;               
     self.subnetId = subnetId;               
     self.instanceStatus = instanceStatus;               
     self.publicDomainName = publicDomainName;               
     self.internalDomainName = internalDomainName;               
     self.createTime = createTime;               
     self.backupSynchronicity = backupSynchronicity;               
     self.charge = charge;               
     self.tags = tags;               
     self.sourceInstanceId = sourceInstanceId;               
    return self;
}

-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self instanceId])
    {
        [result setValue:[self instanceId] forKey:@"instanceId"];
    }
    if([self instanceName])
    {
        [result setValue:[self instanceName] forKey:@"instanceName"];
    }
    if([self instanceType])
    {
        [result setValue:[self instanceType] forKey:@"instanceType"];
    }
    if([self engine])
    {
        [result setValue:[self engine] forKey:@"engine"];
    }
    if([self engineVersion])
    {
        [result setValue:[self engineVersion] forKey:@"engineVersion"];
    }
    if([self instanceClass])
    {
        [result setValue:[self instanceClass] forKey:@"instanceClass"];
    }
    if([self instanceStorageGB])
    {
        [result setValue:[self instanceStorageGB] forKey:@"instanceStorageGB"];
    }
    if([self instanceCPU])
    {
        [result setValue:[self instanceCPU] forKey:@"instanceCPU"];
    }
    if([self instanceMemoryMB])
    {
        [result setValue:[self instanceMemoryMB] forKey:@"instanceMemoryMB"];
    }
    if([self regionId])
    {
        [result setValue:[self regionId] forKey:@"regionId"];
    }
    if([self azId])
    {
        [result setValue:[self azId] forKey:@"azId"];
    }
    if([self vpcId])
    {
        [result setValue:[self vpcId] forKey:@"vpcId"];
    }
    if([self subnetId])
    {
        [result setValue:[self subnetId] forKey:@"subnetId"];
    }
    if([self instanceStatus])
    {
        [result setValue:[self instanceStatus] forKey:@"instanceStatus"];
    }
    if([self publicDomainName])
    {
        [result setValue:[self publicDomainName] forKey:@"publicDomainName"];
    }
    if([self internalDomainName])
    {
        [result setValue:[self internalDomainName] forKey:@"internalDomainName"];
    }
    if([self createTime])
    {
        [result setValue:[self createTime] forKey:@"createTime"];
    }
    if([self backupSynchronicity])
    {
        NSMutableArray<NSDictionary*>* arrayDic  = [[NSMutableArray alloc] init];
        for (int i =0 ; i< [[self backupSynchronicity] count]; i++) {
            BackupSynchronicityAbstract* item = [[self backupSynchronicity] objectAtIndex:i];
            [arrayDic addObject:[item dictionary]];
        }
        [result setValue:arrayDic forKey:@"backupSynchronicity"];
    }
    if([self charge])
    {
        [result setValue:[[self charge] dictionary]forKey:@"charge"];
    }
    if([self tags])
    {
        NSMutableArray<NSDictionary*>* arrayDic  = [[NSMutableArray alloc] init];
        for (int i =0 ; i< [[self tags] count]; i++) {
            Tag* item = [[self tags] objectAtIndex:i];
            [arrayDic addObject:[item dictionary]];
        }
        [result setValue:arrayDic forKey:@"tags"];
    }
    if([self sourceInstanceId])
    {
        [result setValue:[self sourceInstanceId] forKey:@"sourceInstanceId"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.instanceId = [dictionary objectForKey:@"instanceId"];
    self.instanceName = [dictionary objectForKey:@"instanceName"];
    self.instanceType = [dictionary objectForKey:@"instanceType"];
    self.engine = [dictionary objectForKey:@"engine"];
    self.engineVersion = [dictionary objectForKey:@"engineVersion"];
    self.instanceClass = [dictionary objectForKey:@"instanceClass"];
    self.instanceStorageGB = [dictionary objectForKey:@"instanceStorageGB"];
    self.instanceCPU = [dictionary objectForKey:@"instanceCPU"];
    self.instanceMemoryMB = [dictionary objectForKey:@"instanceMemoryMB"];
    self.regionId = [dictionary objectForKey:@"regionId"];
    self.azId = [dictionary objectForKey:@"azId"];
    self.vpcId = [dictionary objectForKey:@"vpcId"];
    self.subnetId = [dictionary objectForKey:@"subnetId"];
    self.instanceStatus = [dictionary objectForKey:@"instanceStatus"];
    self.publicDomainName = [dictionary objectForKey:@"publicDomainName"];
    self.internalDomainName = [dictionary objectForKey:@"internalDomainName"];
    self.createTime = [dictionary objectForKey:@"createTime"];
    NSArray* backupSynchronicityArray = [dictionary objectForKey:@"backupSynchronicity"];
    if(backupSynchronicityArray&&![backupSynchronicityArray isKindOfClass:[NSNull class]])
    {
        NSMutableArray* propertyArray = [[NSMutableArray alloc]init];
        for(int i = 0 ; i< [backupSynchronicityArray count];i++)
        {
            BackupSynchronicityAbstract* item = [[BackupSynchronicityAbstract alloc]initWithDic:[backupSynchronicityArray objectAtIndex:i]];
            if(item)
            {
                [propertyArray addObject:item];
            }
        }
        self.backupSynchronicity = propertyArray;
    }
    self.charge = [[Charge alloc]initWithDic:[dictionary objectForKey:@"charge"]];
    NSArray* tagsArray = [dictionary objectForKey:@"tags"];
    if(tagsArray&&![tagsArray isKindOfClass:[NSNull class]])
    {
        NSMutableArray* propertyArray = [[NSMutableArray alloc]init];
        for(int i = 0 ; i< [tagsArray count];i++)
        {
            Tag* item = [[Tag alloc]initWithDic:[tagsArray objectAtIndex:i]];
            if(item)
            {
                [propertyArray addObject:item];
            }
        }
        self.tags = propertyArray;
    }
    self.sourceInstanceId = [dictionary objectForKey:@"sourceInstanceId"];
    return self;
}
 @end
 
 


